package main

import (
	"fmt"
)

func test(arr [3]int){
	arr[0] = 99
	for index,value := range arr{
		fmt.Printf("index= %d,value= %d\t",index,value)
	}
}

func test2(arr *[3]int){
	(*arr)[0] = 99
	for index,value := range arr{
		fmt.Printf("index= %d,value= %d\t",index,value)
	}
}

func main(){
	var arr [5]int
	arr[0]=3 
	arr[1]=4
	fmt.Println(arr)

	arr2 := [...]int{1,2,3,4,5}
	fmt.Println(arr2)	//使用数组名直接输出数组时不能使用Printf

	//数组的遍历
	//1
	for i := 0;i<len(arr);i++{
		fmt.Println(arr[i])
	}
	//2
	for index, value := range arr{
		fmt.Printf("index = %d,value = %d\n",index,value)
	}

	arr3 := [3]int{3,4,5}
	test(arr3)
	fmt.Println(arr3)

	arr4 := [3]int{6,7,8}
	test2(&arr4)
	fmt.Println(arr4)

	//二维数组的使用
	var arr5 [4][6]int
	arr5[0][0] = 1
	fmt.Println(arr5)
	fmt.Println(arr5[0])	//arr5[0]是一个数组
	//二维数组的遍历
	for i := 0 ;i<len(arr5);i++{
		for j:=0;j<len(arr5[i]);j++{
			fmt.Print(arr5[i][j],"\t")
		}
		fmt.Println()
	}
	for i,v := range arr5{
		for j,v2 := range v{
			fmt.Printf("arr5[%v][%v] =%d",i,j,v2)
		}
		fmt.Println()
	}
}